#ifndef __STOREDATA_H__
#define __STOREDATA_H__

#include <stdbool.h>

/**
 * @brief char * 类型
 * 
 */
typedef char *TextType;
/**
 * @brief int 类型
 * 
 */
typedef double DataType;

/**
 * @brief 充电卡的信息的结构体
 * 
 * 绑定的账号 充电卡编号 充电卡金额 充电卡有效期
 */
typedef struct ChargeCard
{
    TextType Account;   // 绑定的账号
    TextType CardId;    // 充电卡编号
    DataType Money;     // 充电卡金额
    TextType Validity;  // 充电卡有效期
} ChargeCard;

/**
 * @brief 用户信息的结构体
 *
 * 账号 密码 注册时间 上次登录时间 电话号码(暂未实现) 绑定的充电卡
 */
typedef struct UserData
{
    TextType Account;           // 账号
    TextType Password;          // 密码
    TextType RegisterTime;      // 注册时间
    TextType LastLoginTime;     // 上次登录时间
    TextType Phone;             // 暂不实现
    ChargeCard ChargingCard;    // 绑定的充电卡(不是Id)
} UserData;

/**
 * @brief 充电桩信息的结构体
 */
typedef struct ChargePile
{
    TextType PileId;                // 充电桩的标识
    TextType ChargingStartTime;     // 充电开始时间
    TextType ChargingEndTime;       // 充电结束时间
    DataType TotalCharge;           // 充电总量(kWh)
    DataType ChargingFee;           // 充电费用
    TextType ChargingMode;          // 充电模式
}ChargePile;
/**
 * @brief 设备信息的结构体
 * 
 */
typedef struct Device
{
    TextType DeviceId;              // 充电桩的标识(等同充电桩结构体的PileId)
    TextType DeviceType;            // 设备类型
    bool DeviceState;               // 设备状态(可用/维护中)
    TextType DevicePosition;        // 设备位置(地址)
}Device;


#endif
